import os
import sys
import win32com.client

# 使用前必须先注册大漠插件 path 为 dm.dll 文件目录
def register(type = 0, path = sys.path[0]):
    os.chdir(path)
    if type == 0:
        os.system('regsvr32 dm.dll')
    else:
        os.system('regsvr32 /u dm.dll')

# 用于将 return 结果返回
def print_result(func):
    def to_print(*args, **kwargs):
        result = func(*args, **kwargs)
        print(result)
        return result
    return to_print

# 用于将 return 结果成功失败
def print_TrueFalse(func):
    def to_print(*args, **kwargs):
        result = func(*args, **kwargs)
        if result == 1:
            print("运行成功")
        else:
            print("运行失败")
        return result
    return to_print

class DaMo:
    def __init__(self):
        try:
            self.dm = win32com.client.Dispatch('dm.dmsoft')
            print("大漠插件初始化成功")
        except:
            print("大漠插件未注册或目录下不存在dm.dll")
            raise Exception('大漠插件未注册')

    # 获取大漠版本编号
    @print_result
    def Ver(self):
        return self.dm.Ver()

    # 寻找窗口
    @print_result
    def FindWindow(self, class_name = "", title_name = ""):             # 不能使用 None ！
        return self.dm.FindWindow(class_name, title_name)

    # 移动窗口
    @print_TrueFalse
    def MoveWindow(self, hwnd, x = 0, y = 0):
        return self.dm.MoveWindow(hwnd, x, y)